Dynamic Obfuscation Algorithm based on Demand-Driven Symbolic Execution
نویسندگان
چکیده
Dynamic code obfuscation technique increases the difficulty of dynamically reverse by the runtime confusion. Path explosion directly affects the efficiency and accuracy of dynamic symbolic analysis. Because of the defect, this paper presents a novel algorithm DDD (Demand-Driven Dynamic Obfuscation Algorithm) by using the demand-driven theory of symbolic analysis. First, create a large number of invalid paths to mislead the result of symbolic analysis. Second, according to the demand-driven theory, create a specific execution path to protect the security of software. The design and implementation of the algorithm is based on the current popular and mature SMT (satisfiability model theory), and the experimental effects are tested by Z3 the SMT solver and Pex the symbolic execution test tools. The experimental results prove that the algorithm enhance the security of the program.
منابع مشابه
BinSim: Trace-based Semantic Binary Diffing via System Call Sliced Segment Equivalence Checking
Detecting differences between two binary executables (binary diffing), first derived from patch analysis, have been widely employed in various software security analysis tasks, such as software plagiarism detection and malware lineage inference. Especially when analyzing malware variants, pervasive code obfuscation techniques have driven recent work towards determining semantic similarity in sp...
متن کاملDemand-Driven Compositional Symbolic Execution
We discuss how to perform symbolic execution of large programs in a manner that is both compositional (hence more scalable) and demand-driven. Compositional symbolic execution means finding feasible interprocedural program paths by composing symbolic executions of feasible intraprocedural paths. By demand-driven, we mean that as few intraprocedural paths as possible are symbolically executed in...
متن کاملControl Flow Obfuscation Using Neural Network to Fight Concolic Testing
Concolic testing is widely regarded as the state-of-the-art technique in dynamic discovering and analyzing trigger-based behavior in software programs. It uses symbolic execution and an automatic theorem prover to generate new concrete test cases to maximize code coverage for scenarios like software verification and malware analysis. While malicious developers usually try their best to hide mal...
متن کاملLinear Obfuscation to Combat Symbolic Execution
Trigger-based code (malicious in many cases, but not necessarily) only executes when specific inputs are received. Symbolic execution has been one of the most powerful techniques in discovering such malicious code and analyzing the trigger condition. We propose a novel automatic malware obfuscation technique to make analysis based on symbolic execution difficult. Unlike previously proposed tech...
متن کاملA Simple, Verified Validator for Software Pipelining (verification pearl)
Software pipelining is a loop optimization that overlaps the execution of several iterations of a loop to expose more instruction-level parallelism. It can result in first-class performance characteristics, but at the cost of significant obfuscation of the code, making this optimization difficult to test and debug. In this paper, we present a translation validation algorithm that uses symbolic ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- Journal of Multimedia
دوره 9 شماره
صفحات -
تاریخ انتشار 2014